IP change log (PHP/Python)

19 01 2012

Voilà une petite application que je viens de créer, qui permet d’enregistrer tous les changements d’IP publique d’un ordinateur.

Elle se compose de 2 parties :

  • Un script PHP (logip.php), qui sera hébergé sur un serveur (sur internet), dont le rôle est d’enregistrer l’adresse IP du client dans un fichier .log
  • Un script Python (notifier.py) que l’on va faire tourner en arrière-plan au démarrage de l’ordinateur (celui dont on veut enregistrer les changements d’IP), et qui va être chargé d’appeler le serveur à intervalle régulier (toutes les 1 minute par exemple), et ainsi lui indiquer un éventuel changement d’IP.

Ce script peut être très utile pour par exemple diagnostiquer un problème de déconnexion/reconnexion intempestive d’un modem ADSL (comme cette merde de Bewan 900), ou tout simplement pour pouvoir connaitre l’IP dynamique de votre ordinateur personnel depuis n’importe ou, simplement en accédant au fichier de log sur le serveur (quand DynDNS fait des siennes).

Techniquement, c’est le serveur qui détecte le changement d’IP, le client est très simple, il ne fait que des requêtes HTTP en boucle. La seule chose à faire est de lui indiquer l’URL où vous hébergez logip.php, avec également le paramètre “machine” qui sert à définir le nom du fichier log sur le serveur, et éventuellement changer la fréquence des notifications (toutes les 60 secondes par défaut) :

#coding: UTF-8
import urllib.request
import time

# Configuration
server_url = "http://votresite.com/IPChangeLog/logip.php?machine=ordinateur-maison"

while True :
    try:
        response = urllib.request.urlopen(server_url)
        response.close()
    except:
        pass
    time.sleep(60)

Note importante : ce script fonctionne en Python 3, je n’ai pas testé avec Python 2 et il se peut que ça ne fonctionne pas puisque Python 3 n’est pas rétro-compatible.

Ensuite il faut lancer le script notifier.py en arrière plan grâce à pythonw.exe (la différence entre python.exe et pythonw.exe est que le 2éme n’affiche pas d’invite de commande, il sert justement à exécuter des scripts python en arrière-plan), avec cette ligne de commande (modifiez juste les chemins en fonction de l’emplacement de python et du script notifier.py sur votre ordinateur) :

C:\Python\pythonw.exe "C:\Python\IPChangeLog\notifier.py"

Pour que ce script se lance automatiquement au démarrage de votre ordinateur, vous pouvez par exemple créer une tâche planifiée.

Et voilà, maintenant vous pouvez voir le journal de vos changements d’IP en consultant le fichier .log (ex: http://votresite.com/IPChangeLog/ipchange_ordinateur-maison.log).


Partager :

Ces icônes sont des liens vers des sites de partage de signet sociaux où les lecteurs peuvent partager et découvrir de nouveaux liens.
  • Digg
  • del.icio.us
  • Facebook
  • Digg -fr
  • Live
  • MisterWong Fr
  • Scoopeo
  • StumbleUpon
  • Technorati
  • Wikio FR

Actions

Informations

Et maintenant je fais quoi ?

Aucun commentaire

Une réponse à “IP change log (PHP/Python)”

23 05 2023
Migdalia (03:04:50) :

Hi to every one, the contents existing at this site are in fact amazing for people experience, well, keep up the good work fellows.

Laisser un commentaire

Vous pouvez utiliser ces balises html : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>